package com.lkj.utils;  
  
import java.io.IOException;  
import java.io.InputStream;      
import org.apache.commons.net.ftp.FTPClient;  
import org.apache.commons.net.ftp.FTPReply;  
  
  
public class Ftputil {  
      
    /**  
     * Description: 向FTP服务器上传文件   
     * @param url FTP服务器hostname  
     * @param port FTP服务器端口  
     * @param username FTP登录账号  
     * @param password FTP登录密码  
     * @param path FTP服务器保存目录  
     * @param filename 上传到FTP服务器上的文件名  
     * @param input 输入流  
     * @return 成功返回true，否则返回false  
     */    
    public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {    
        boolean success = false;    
        FTPClient ftp = new FTPClient();    
        try {    
            ftp.connect(url, port);//连接FTP服务器    
            //如果采用默认端口，可以使用ftp.connect(url)的方式直接连接FTP服务器    
            ftp.login(username, password);//登录    
            int reply = ftp.getReplyCode();    
            System.out.println("FTP连接结果："+reply);  
            if (!FTPReply.isPositiveCompletion(reply)) {  //FTP连接没有登录成功。  
                ftp.disconnect();    
                System.out.println("10");  
                return success;    
            }    
            System.out.println("11");  
            ftp.changeWorkingDirectory(path);    
            ftp.storeFile(filename, input);             
            input.close();   
            ftp.logout();    
            success = true;    
        } catch (IOException e) {   
            e.printStackTrace();    
        } finally {    
            if (ftp.isConnected()) {    
                try {    
                    ftp.disconnect();    
                } catch (IOException ioe) {    
                    ioe.printStackTrace();  
                }    
            }    
        }    
        return success;    
    }    
}  